#include "Etg_Almacenamiento.h"


void Etg_Almacenamiento::ubicar(Compuesto *compuesto, Dato *daux, unsigned int *pos, unsigned int* tam, TipoSerializacion tipoS){
        // no devuelve nada xq tiene q estar sino ya lo rechazo el indice antes!       
        ComponenteAlmacenamiento *reg;
        int i,resp=-1;
      
        (*pos)=0;
       for(i=0;i<compuesto->getCantidadComponentes()&&(resp!=0);i++){ 
       		reg=compuesto->getComponenteAt(i); 
       		Dato *dato; 
       		daux->clone(dato); 
       		reg->leer(dato,tipoS); 
       		resp= dato->compareTo(daux); 
       		if (resp==0) { 
       			(*tam)=dato->getTamanio(tipoS); 
       			*pos= i; 
       			free(dato); 
       			return; 
       			} 
       	}
        // si llega no encontro
        // TODO: arrojar excepcion o hacer algo al respecto
}
